package com.ruoyi.social.service.impl;

import java.util.List;
import java.util.Objects;

import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.social.domain.SocialProduct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.social.mapper.SocialProductUserMapper;
import com.ruoyi.social.domain.SocialProductUser;
import com.ruoyi.social.service.ISocialProductUserService;

/**
 * 用户商品关联Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-09-24
 */
@Service
public class SocialProductUserServiceImpl implements ISocialProductUserService 
{
    @Autowired
    private SocialProductUserMapper socialProductUserMapper;

    /**
     * 查询用户商品关联
     * 
     * @param userId 用户商品关联主键
     * @return 用户商品关联
     */
    @Override
    public SocialProductUser selectSocialProductUser(Long userId, Long productId)
    {
        return socialProductUserMapper.selectSocialProductUser(userId, productId);
    }

    @Override
    public SocialProductUser checkSocialProductUser(Long userId, SocialProduct product, String url) {
        SocialProductUser productUser = selectSocialProductUser(userId, product.getId());
        if (StringUtils.isNull(productUser)) {
            productUser = new SocialProductUser();
            productUser.setProductId(product.getId());
            productUser.setUserId(userId);
            productUser.setProductUrl(url);
            productUser.setStatus(product.getStatus());
            insertSocialProductUser(productUser);
            productUser.getParams().put("isnew", "true");
        } else {
            if (!Objects.equals(productUser.getStatus(), product.getStatus())) {
                productUser.setStatus(product.getStatus());
                productUser.setProductUrl(url);
                updateSocialProductUser(productUser);
            }
        }
        return productUser;
    }

    /**
     * 查询用户商品关联列表
     * 
     * @param socialProductUser 用户商品关联
     * @return 用户商品关联
     */
    @Override
    public List<SocialProductUser> selectSocialProductUserList(SocialProductUser socialProductUser)
    {
        return socialProductUserMapper.selectSocialProductUserList(socialProductUser);
    }

    /**
     * 新增用户商品关联
     * 
     * @param socialProductUser 用户商品关联
     * @return 结果
     */
    @Override
    public int insertSocialProductUser(SocialProductUser socialProductUser)
    {
        return socialProductUserMapper.insertSocialProductUser(socialProductUser);
    }

    /**
     * 修改用户商品关联
     * 
     * @param socialProductUser 用户商品关联
     * @return 结果
     */
    @Override
    public int updateSocialProductUser(SocialProductUser socialProductUser)
    {
        return socialProductUserMapper.updateSocialProductUser(socialProductUser);
    }

    /**
     * 批量删除用户商品关联
     * 
     * @param userIds 需要删除的用户商品关联主键
     * @return 结果
     */
    @Override
    public int deleteSocialProductUserByUserIds(Long[] userIds)
    {
        return socialProductUserMapper.deleteSocialProductUserByUserIds(userIds);
    }

    /**
     * 删除用户商品关联信息
     * 
     * @param userId 用户商品关联主键
     * @return 结果
     */
    @Override
    public int deleteSocialProductUserByUserId(Long userId)
    {
        return socialProductUserMapper.deleteSocialProductUserByUserId(userId);
    }
}
